#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include "list.h"

int main(){
    
    dati_t *head=NULL;
    
    dati_t tmp1;
    tmp1.msgNumber=1;
	tmp1.sensorID=2;
	tmp1.sensorValue="red";
	tmp1.destinationIP="121.45.12.123";
	tmp1.anno=2011;
	tmp1.mese=9;
	tmp1.giorno=15;
	tmp1.ora=18;
	tmp1.minuti=57;
	tmp1.secondi=7;
	tmp1.deadline=8;
	tmp1.type="Ape";
	
	head=insert_order_by_deadline(head,tmp1);
	
	stampa(head);

	int numElem = get_num_elements(head);
	printf("Numero di elementi attualmente contenuti in coda: %d\n",numElem);
	
	dati_t tmp2;
    tmp2.msgNumber=1;
	tmp2.sensorID=2;
	tmp2.sensorValue="blu";
	tmp2.destinationIP="121.45.12.123";
	tmp2.anno=2011;
	tmp2.mese=9;
	tmp2.giorno=13;
	tmp2.ora=19;
	tmp2.minuti=14;
	tmp2.secondi=7;
	tmp2.deadline=3;
	tmp2.type="Ape";
	
	head=insert_order_by_deadline(head,tmp2);
	
	stampa(head);
	
	numElem = get_num_elements(head);
	printf("Numero di elementi attualmente contenuti in coda: %d\n",numElem);
	
	dati_t tmp3;
    tmp3.msgNumber=1;
	tmp3.sensorID=2;
	tmp3.sensorValue="blu";
	tmp3.destinationIP="121.45.12.123";
	tmp3.anno=2011;
	tmp3.mese=9;
	tmp3.giorno=13;
	tmp3.ora=19;
	tmp3.minuti=14;
	tmp3.secondi=6;
	tmp3.deadline=6;
	tmp3.type="Ape";
	
	head=insert_order_by_deadline(head,tmp3);
	
	stampa(head);
	
	numElem = get_num_elements(head);
	printf("Numero di elementi attualmente contenuti in coda: %d\n",numElem);
	
	dati_t *tmp4;
	tmp4 = (dati_t*) malloc(sizeof(dati_t));
	
	head = remove_from_tail(head,tmp4);
	
	printf("########## RIMOZIONE ESEGUITA! #########\n");
	printf("\nId pacchetto: %d\n",tmp4->msgNumber);
	printf("Sensor id: %d\n",tmp4->sensorID);
	printf("Sensor value: %s\n",tmp4->sensorValue);
	printf("Ip client: %s\n",tmp4->destinationIP);
	printf("Timestamp: [%d,%d,%d,%d,%d,%d]\n",tmp4->anno,tmp4->mese,tmp4->giorno,tmp4->ora,tmp4->minuti,tmp4->secondi);
	printf("Deadline: %d\n",tmp4->deadline);
	printf("Type of msg: %s\n\n",tmp4->type);
	printf("########## ------------------- #########\n");
	
	
	numElem = get_num_elements(head);
	printf("Numero di elementi attualmente contenuti in coda: %d\n",numElem);
	
	stampa(head);
    
}
